水熊虫
水熊虫
不认命,就拼命!
264文章 53分类

机器人开发-- ROS介绍

现在我们来开始一个新的篇章, 最近LLM发展的越来越成熟, 进而会带给大家一定思考,对职场人冲击最大的就是对脑力工作的替代,相信大家也会因此感到迷茫, 未来LLM越来越成熟几乎成为一个必然的结果,那么LLM成熟以后到底能做什么,难道只能开发一些系统和APP,做做表格和文档么,相信如果仅仅只是这样LLM是不具备成为下一个时代的标志的。 可能目前我更愿意相信的是 LLM会逐渐从脑力工作变成体力工作, 只是思考的对还不够,要真正的进入人类的生活中, 提供更加实质的帮助。 好啦, 画了一个大饼, 其实我更想说的是接下来我们学习的内容就是从脑力到体力之间转化的必经之路, 机器人的开发。

ROS起源

ROS的全称是robot operating System, 是开发机器人的一个“操作系统”, ROS的核心目的还是提⾼机器⼈的软件复⽤率, ROS也是有以下4个部分组成。
•通信机制:复杂的机器⼈系统提供⾼效、安全的数据分发机制。
•开发⼯具:为不同场景下的机器⼈仿真、可视化、开发调试提供易⽤性⼯具。
•应⽤功能:为多种多样的机器⼈应⽤提供接⼜开放、可⼆次开发的功能包。
•⽣态系统:联合全球机器⼈开发者,共同建⽴活跃⽽繁荣的开源社区与机器⼈⽂化。
当然ROS也有一些迭代, 虽然我们会深度介绍的是ROS2,其实最早的开发系统是ROS1, 随着机器人的开发和工作越来越复杂,例如

  • 要在资源有限的嵌⼊式系统中运⾏。
  • 要在有⼲扰的地⽅保证通信的可靠性。
  • 要做成产品⾛向市场,甚⾄⽤在⾃动驾驶汽车和航天机器⼈上 就演变出了ROS2系统,进而支持了多机器人系统, 可以跨平台使用,实时性更好等特性。
    image-ROS两代之间的对比
    上图是能看到整体架构还是发生了比较大的变化。 接下来我们也还是会概括性的介绍一下ROS2的一些常用概念。

ROS2

基础概念

•⼯作空间(Workspace):开发过程的⼤本营,是放置各种开发⽂件的地⽅。
•功能包(Package):功能源码的聚集地,⽤于组织某⼀机器⼈功能。
•节点(Node):机器⼈的⼯作细胞,是代码编译⽣成的⼀个可执⾏⽂件。
•话题(Topic):节点间传递数据的桥梁,周期性传递各功能之间的信息。
•服务(Service):节点间的“你问我答”,⽤于某些机器⼈功能和参数的配置。
•通信接口(Interface):数据传递的标准结构,规范了机器⼈的各种数据形态。
•参数(Parameter):机器⼈系统的全局字典,可定义或查询机器⼈的配置参数。
•动作(Action):完整⾏为的流程管理,控制机器⼈完成某些动作。
•分布式通信(DistributedCommunication):多计算平台的任务分配,实现快速组⽹。
•DDS(DataDistributionService):机器⼈的神经⽹络,完成数据的⾼效安全传送。

命令行工具

image-命令行工具

ROS2安装

虽然ROS名⼒“操作系统”,但它并不是常规意义中直接安装在硬件上的操作系统装ROS之前,⼤家还需要先在计算机上装⼀个Linux发⾏版系统——Ubuntu。

$sudo apt install software-properties-common
$sudo add-apt-repository universe
$sudo apt update & sudo apt install curl - y
$sudo curl-sSL[ROSMGitHub#(JURL]-0/usr/share/keyrings/ros-archive-keyring.gpg
$echo"deb[arch=$(dpkg--print-architecture)

更新完系统,开始安装ROS2系统

sudo apt-get install ros-jazzy-desktop
source /opt/ros/jazzy/setup.bash

启动一个ros2 demo

ros2 run demo_nodes_cpp talker # 终端1
ros2 run demo_nodes_py listener # 终端2

总而言之

今天咱们通过简单的内容先了解这个方向的一些开发环境和背景, 算是一个入门, 接下来我们会展开其中的每个内容详细沉淀。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×